;; Adapted from the JDE by Matt Bruce <matt.bruce@morganstanley.com>
;; Maintainer:  Matt Bruce

;; JDE Author: Paul Kinnucan <paulk@mathworks.com>
;; JDE Maintainer: Paul Kinnucan

;; Keywords: csharp, tools

;; Copyright (C) 2001 Matt Bruce

;; The JDE is Copyright (C) 1997, 1998, 1999, 2000, 2001 Paul Kinnucan.

;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation; either version 2, or (at your option)
;; any later version.

;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
;; GNU General Public License for more details.

;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs; see the file COPYING.  If not, write to the
;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
;; Boston, MA 02111-1307, USA.

;; The latest version of the CSDE is available at
;; <URL:http://www.sourceforge.com/>.

;; Please send any comments, bugs, or upgrade requests to
;; Matt Bruce (matt.bruce@morganstanley.com)

;;; DO NOT MODIFY THIS FILE
(if (featurep 'csde-autoloads) (error "Already loaded"))

;;;### (autoloads nil "_pkg" "lisp/_pkg.el")

(package-provide 'csde :version 1.27 :type 'regular)

;;;***

;;;### (autoloads (csde-bug-debug-app) "csde-bug" "lisp/csde-bug.el")

(autoload 'csde-bug-debug-app "csde-bug" "\
Runs the debugger on the application in the current source buffer." t nil)

;;;***

;;;### (autoloads (csde-compile csde-set-compile-options) "csde-compile" "lisp/csde-compile.el")

(autoload 'csde-set-compile-options "csde-compile" "\
Sets the compile options.
Enter the options as you would on the command line, e.g.,
-depend -verbose." t nil)

(autoload 'csde-compile "csde-compile" "\
Compile the Csharp program in the current buffer.
This command invokes the compiler specified by `csde-compiler'
with the options specified by the CSDE customization variables
that begin with `csde-compile'. If the variable
`csde-read-compile-args' is non-nil, this command reads
additional compilation options from the minibuffer, with
history enabled." t nil)

;;;***

;;;### (autoloads (csde-db-applet csde-db csde-db-set-app-args csde-db-set-args csde-db-set-debugger) "csde-db" "lisp/csde-db.el")

(autoload 'csde-db-set-debugger "csde-db" "\
Specify the pathname of the debugger, if an executable, or the
debugger's fully qualified class name, if a class." t nil)

(autoload 'csde-db-set-args "csde-db" "\
Specify the arguments (except -classpath) to be passed to the debugger." t nil)

(autoload 'csde-db-set-app-args "csde-db" "\
Specify the arguments to be passed to the Csharp application class." t nil)

(autoload 'csde-db "csde-db" "\
Run jdb on Csharp application whose source resides in the current buffer.
This command determines the main class of the application either from
the variable `csde-run-application-class' or from the source in the current 
buffer. If `csde-run-application-class' does not specify a class, the main class
is assumed to be the class defined by the current source buffer. This command
creates a command buffer named *gud-CLASS* for the debug session.
CLASS is the name of the class you are debugging." t nil)

(autoload 'csde-db-applet "csde-db" "\
Runs an applet in the debugger. This function prompts you to enter
the path of an html document that displays the applet. If you 
do not enter a path, this function next checks
whether `csde-run-applet-doc' specifies a document. If so, it displays
that specified document. Next, it checks whether the current directory
contains any html files. If so, it displays the first html file that
it finds. If if cannot find an html file, it signals an error.  This
function runs appletviewer in jdb to permit debugging. On startup, it
sets a breakpoint in the init method of the class specified by 
`csde-run-application-class' or in the class corresponding to the Csharp
file in the current buffer." t nil)

;;;***

;;;### (autoloads (csde-gen-buffer csde-gen-jfc-app-buffer csde-gen-console-buffer csde-gen-class-buffer) "csde-gen" "lisp/csde-gen.el")

(autoload 'csde-gen-class-buffer "csde-gen" "\
Create a new Csharp buffer containing a class of the same name.
This command inserts the class template generated by `csde-gen-class'.
It then moves the point to the location to the constructor." t nil)

(autoload 'csde-gen-console-buffer "csde-gen" "\
Create a new Csharp buffer containing a console class of the same name.
This command inserts the class template generated by `csde-gen-class'.
It then moves the point to the location to the constructor." t nil)

(autoload 'csde-gen-jfc-app-buffer "csde-gen" "\
Create a new Csharp buffer containing a JFC application class.
This command inserts the class template generated by `csde-gen-jfc-app'.
It then moves the point to the location to the constructor." t nil)

(autoload 'csde-gen-buffer "csde-gen" "\
Create a new Csharp buffer containing a code template.
This command inserts the specified template at the beginning
of the buffer." t nil)

;;;***

;;;### (autoloads (csde-import-organize) "csde-import" "lisp/csde-import.el")

(autoload 'csde-import-organize "csde-import" "\
Organize import statements of the current Csharp source buffer.
If optional FORCE is non-nil force reordering even if imports are
already organized.

Imports are organized into groups returned by the function specified
by `csde-import-group-function'.  Groups are inserted in the order they
are found unless `csde-import-sorted-groups' requires that they must be
alphabetically sorted.  In each group imports are sorted by name
alphabetically or in reverse order if `csde-import-reverse-sort-group'
is non-nil.  A blank line is inserted between groups.

Usage:
  \\[csde-import-organize] group and sort import statements.
  \\[universal-argument] \\[csde-import-organize] to force reordering.

The current buffer must be in `csde-mode'.  This command requires a
version of the CSDE with the semantic parser." t nil)

;;;***

;;;### (autoloads (csde-csharp-font-lock-setup-keywords) "csde-csharp-font-lock" "lisp/csde-csharp-font-lock.el")

(autoload 'csde-csharp-font-lock-setup-keywords "csde-csharp-font-lock" "\
Setup font lock keywords in `csharp-font-lock-keywords-4'.
If optional REBUILD flag is non-nil create a new cache of regular
expressions." t nil)

;;;***

;;;### (autoloads (csde-csharpdoc-make) "csde-csharpdoc-gen" "lisp/csde-csharpdoc-gen.el")

(autoload 'csde-csharpdoc-make "csde-csharpdoc-gen" "\
Generates csharpdoc for the current project. This command runs the
CSDE csharpdoc program to generate the documentation. The variable
`csde-csharpdoc-command-path' specifies the path of the csharpdoc excutable.
The variable `csde-global-classpath' specifies the csharpdoc 
-classpath argument. The variable `csde-db-source-directories'
specifies the csharpdoc  -sourcepath argument. You can specify all
other csharpdoc options via CSDE customization variables. To specify the
options, select Project->Options->Csharpdoc from the CSDE menu. Use 
`csde-csharpdoc-gen-packages' to specify the packages, classes, or source
files for which you want to generate csharpdoc. If this variable is nil,
this command generates csharpdoc for the Csharp source file in the current
buffer. If `csde-csharpdoc-display-doc' is nonnil, this command displays
the generated documentation in a browser." t nil)

;;;***

;;;### (autoloads (csde-csharpdoc-checkdoc csde-csharpdoc-checkdoc-at-line csde-csharpdoc-autodoc-at-line csde-csharpdoc-customize) "csde-csharpdoc" "lisp/csde-csharpdoc.el")

(autoload 'csde-csharpdoc-customize "csde-csharpdoc" "\
Show the csde-csharpdoc options panel." t nil)

(autoload 'csde-csharpdoc-autodoc-at-line "csde-csharpdoc" "\
Update csharpdoc comment block for declaration at current line.

Uses the semantic bovinator parser table to find declarations (see
`csde-csharpdoc-nonterminal-at-line').

BEFORE EXECUTING THE COMMAND, THE POINT MUST BE LOCATED AT THE FIRST
LINE OF THE CLASS OR METHOD DECLARATION.  IF NOT RESULT IS UNCERTAIN.

In the following examples, point is located at the beginning of the
line, before the word 'public' (but it could be anywhere on this
line):

1- Class example:
   -------------

-|-  public class MyClass
       extends MySuperClass implements Runnable, csharp.io.Serializable
     {
       ...

\\[csde-csharpdoc-autodoc-at-line] inserts:

+    /**
+     * Describe class <code>MyClass</code> here.
+     *
+     * @author \"David Ponce\" <david.ponce@wanadoo.fr>
+     * @version 1.0
+     * @since 1.0
+     * @see MySuperClass
+     * @see Runnable
+     * @see csharp.io.Serializable
+     */
     public class MyClass
       extends MySuperClass implements Runnable, csharp.io.Serializable
     {
       ...

2- Method example:
   --------------

-|-  public
     void   myMethod( int  x,  int y )
       throws Exception
     {
       ...

\\[csde-csharpdoc-autodoc-at-line] inserts:

+    /**
+     * Describe <code>myMethod</code> method here.
+     *
+     * @param x an <code>int</code> value
+     * @param y a <code>long</code> value
+     * @exception Exception if an error occurs
+     */
     public
     void   myMethod( int  x,  long y )
       throws Exception
     {
       ...

3- Field example:
   --------------

-|-  private static final int SIZE = 10;

\\[csde-csharpdoc-autodoc-at-line] inserts:

+    /**
+     * Describe constant <code>SIZE</code> here.
+     */
     private static final int SIZE = 10;


`tempo' templates are used for each category of csharpdoc line.  The
following templates are currently defined and fully customizable (see
`tempo-define-template' for the different items that can be used in a
tempo template):

- - `csde-csharpdoc-author-tag-template'
- - `csde-csharpdoc-describe-class-template'
- - `csde-csharpdoc-describe-constructor-template'
- - `csde-csharpdoc-describe-interface-template'
- - `csde-csharpdoc-describe-method-template'
- - `csde-csharpdoc-describe-field-template'
- - `csde-csharpdoc-exception-tag-template'
- - `csde-csharpdoc-param-tag-template'
- - `csde-csharpdoc-return-tag-template'
- - `csde-csharpdoc-see-tag-template'
- - `csde-csharpdoc-since-tag-template'
- - `csde-csharpdoc-version-tag-template'

For example if you customize `csde-csharpdoc-describe-class-template'
with the following value:

'(\"* \" (P \"Class description: \"))

you will be asked to enter the class description in the minibuffer.
See also the `csde-csharpdoc-field-type', `csde-csharpdoc-a' and
`csde-csharpdoc-code' helper functions." t nil)

(autoload 'csde-csharpdoc-checkdoc-at-line "csde-csharpdoc" "\
Check csharpdoc comment block of declaration at current line.

Uses the semantic bovinator parser table to find declarations (see
`csde-csharpdoc-nonterminal-at-line').

BEFORE EXECUTING THE COMMAND, THE POINT MUST BE LOCATED AT THE FIRST
LINE OF THE CLASS OR METHOD DECLARATION.  IF NOT RESULT IS UNCERTAIN." t nil)

(autoload 'csde-csharpdoc-checkdoc "csde-csharpdoc" "\
Check doc comments of tokens in the current buffer.
Report the next token with documentation errors." t nil)

;;;***

;;;### (autoloads (csde-make) "csde-make" "lisp/csde-make.el")

(autoload 'csde-make "csde-make" "\
Run the CSDE make program." t nil)

;;;***

;;;### (autoloads (csde-package-update csde-package-generate-package-statement csde-package-customize) "csde-package" "lisp/csde-package.el")

(autoload 'csde-package-customize "csde-package" "\
Customization of the group csde-package." t nil)

(autoload 'csde-package-generate-package-statement "csde-package" "\
Generates a Csharp package statement. If the package name cant be generated
this function returns an empty string." nil nil)

(autoload 'csde-package-update "csde-package" "\
Updates or replaces the Csharp package statement in the current buffer.
If the package statement does not exist a new one is inserted at the
top of the buffer. If the package name cant be generated nothing is done.
The major mode of current buffer must be 'csde-mode'." t nil)

;;;***

;;;### (autoloads (csde-run-applet csde-run-mode csde-run csde-run-set-applet-doc csde-run-set-applet-viewer csde-run-set-app-args csde-run-set-args csde-run-set-app csde-run-set-vm-w csde-run-set-vm) "csde-run" "lisp/csde-run.el")

(autoload 'csde-run-set-vm "csde-run" "\
Specifies the Csharp interpreter used to run Csharp applications
on non-Windows platforms . The default is csharp." t nil)

(autoload 'csde-run-set-vm-w "csde-run" "\
Specifies the Csharp interpreter used to run Csharp applications
on Windows platforms . The default is csharpw." t nil)

(autoload 'csde-run-set-app "csde-run" "\
Specify the name of the application class to run." t nil)

(autoload 'csde-run-set-args "csde-run" "\
Specify arguments to be passed to the Csharp vm.
This command serves as an alternative to using the CSDE Run Options
panel to specify command-line arguments for the Csharp interpreter." t nil)

(autoload 'csde-run-set-app-args "csde-run" "\
Specify the arguments to be passed to the Csharp application class.
This command provides an alternative to using the CSDE Run Options panel
to specify command-line arguments to pass to the application when starting
the application." t nil)

(autoload 'csde-run-set-applet-viewer "csde-run" "\
Sets the viewer to be used to view an applet. The default is 
appletviewer." t nil)

(autoload 'csde-run-set-applet-doc "csde-run" "\
Specify the doc to be used to view an applet.
This command provides an alternative to using the CSDE Options
panel to specifying the applet document." t nil)

(autoload 'csde-run "csde-run" "\
Run the Csharp application specified by `csde-run-executable', if
not the null string. Otherwise run the class specified by 
`csde-run-application-class', if non-null; otherwise the class in
the current buffer. This command also creates a comint buffer to allow
you to interacti with the program." t nil)

(autoload 'csde-run-mode "csde-run" "\
Mode for running Csharp programs." t nil)

(autoload 'csde-run-applet "csde-run" "\
Runs an applet. This function prompts you to enter the path of an
html document that displays the applet. If you enter return without
specifying a document, this function next checks whether
`csde-run-applet-doc' specifies a document. If so, it displays that
specified document. Next, it checks whether the current directory
contains any html files. If the current directory contains an html
file with the same root name as the Csharp file in the current buffer,
it displays the file. If not, it displays the first html file that it
finds in the current directory. If if cannot find an html file, it
signals an error.  This function uses the viewer specified by
`csde-run-applet-viewer' to display the specified document. Note that
if you run two html applet files successively with the same name, you
must kill the buffer created to run the first file before running the
second file. Otherwise, this command will simply redisplay the first
file." t nil)

;;;***

;;;### (autoloads nil "csde-which-method" "lisp/csde-which-method.el")

(defcustom csde-which-method-mode t "Enables the CSDE's which method mode.\nWhen which method mode is enabled, the current method name is\ndisplayed in the mode line." :group 'csde-which-method :type 'boolean)

;;;***

;;;### (autoloads (csde-compile-csde csde-show-help csde-save-project csde-open-project-file csde-mode csde-build csde-csharp-build csde-browse-jdk-doc csde-set-global-classpath csde-set-compiler) "csde" "lisp/csde.el")

(defconst csde-version "2.2.7beta3" "\
CSDE version number.")

(autoload 'csde-set-compiler "csde" "\
Specify the pathname of the compiler to be used to compile the
current buffer. Default is csharpc." t nil)

(autoload 'csde-set-global-classpath "csde" "\
Specify the value of the -classpath argument for the Csharp compiler and
interpreter." t nil)

(autoload 'csde-browse-jdk-doc "csde" "\
Displays the JDK doc in a web browser. This function uses the URL
stored in the variable csde-jdk-doc-url to locate the JDK documentation." t nil)

(autoload 'csde-csharp-build "csde" "\
Use csharpc -depend to build the application whose main class is
specified by `csde-run-application-class'." t nil)

(autoload 'csde-build "csde" "\
Rebuild the entire project.
This command has two operating modes: csharp and make. In csharp mode,
this command uses csharpc's built-in make facility to rebuild a
project. In make mode, this command uses a user-specified make program
to rebuild the project. CSDE configuration variables control which mode
is used.  In particular, if the variable `csde-build-use-make' is
non-nil, this command invokes the make program specified by the
variable `csde-make-program'. If the variable `csde-make-args' is a
non-empty string, this function uses its contents to invoke make;
otherwise, it prompts you to enter command-line arguments for make. If
`csde-build-use-make' is nil, this function invokes csharpc on the source
file specified by `csde-run-app-class', with the -depend option. This
causes csharpc to recompile all missing or out-of-date files required
to run the application's main class." t nil)

(autoload 'csde-mode "csde" "\
Major mode for developing Csharp applications and applets." nil nil)

(setq auto-mode-alist (append '(("\\.cs\\'" . csde-mode)) auto-mode-alist))

(autoload 'csde-open-project-file "csde" "\
Opens the project file for the Csharp source file in the
current buffer." t nil)

(autoload 'csde-save-project "csde" "\
Saves local source file buffer options in project file.
This command provides an easy way to create and update a
project file for a Csharp project. Simply open a source file,
set the desired options, using the CSDE Options menu, then
save the settings in the project file, using this command.
Now, whenever you open a source file from the same directory
tree, the saved settings will be restored for that file." t nil)

(autoload 'csde-show-help "csde" "\
Displays the CSDE User's Guide in a browser." t nil)

(autoload 'csde-compile-csde "csde" "\
Byte-compile all uncompiled files of csde." t nil)

;;;***

(provide 'csde-autoloads)
